<?php

declare(strict_types=1);

namespace Shenlink\Holiya\Console\Command;

/**
 * 命令接口
 *
 * 定义所有命令必须实现的方法
 */
interface ICommand
{
    /**
     * 获取命令名称
     *
     * @return string 命令名称
     */
    public function getName(): string;

    /**
     * 获取命令描述
     *
     * @return string 命令描述
     */
    public function getDescription(): string;

    /**
     * 执行命令
     *
     * @param array $arguments 命令参数
     * @return int 执行结果状态码
     */
    public function execute(array $arguments = []): int;

    /**
     * 显示帮助信息
     *
     * @return void
     */
    public function showHelp(): void;
}
